/*
 * @Author: 菜鸟裹裹 675687356@qq.com
 * @Date: 2025-06-17 11:07:46
 * @LastEditors: 菜鸟裹裹 675687356@qq.com
 * @LastEditTime: 2025-06-17 15:07:50
 * @FilePath: /customer-service-web/src/permission.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import router from './router'
import store from './store'

// 白名单
const whiteList = ['/login',]
/**
 * 路由前置守卫
 */
router.beforeEach(async (to, from, next) => {
  // 存在 token ，进入主页
  // 快捷访问
  console.log(to,"路由守卫");
  if (store.getters.token) {
    if (to.path === '/login') {
      console.log(to.path,"lai -------");
      next('/')
    } else {
      if (!store.getters.hasUserInfo) {
        // 触发获取用户信息的 action，并获取用户当前权限
        
        const { menus } = await store.dispatch('user/getUserInfo')
       
        // 处理用户权限，筛选出需要添加的权限
        const filterRoutes = await store.dispatch(
          'permission/filterRoutes',
          menus
        )
        // 利用 addRoute 循环添加
        filterRoutes.forEach(item => {
          router.addRoute(item)
        })
       
        // 添加完动态路由之后，需要在进行一次主动跳转
        console.log(to.path,"添加完动态路由之后，需要在进行一次主动跳转 -------");
        return next(to.path)
        
      }
      next()
    }
  } else {
    // 没有token的情况下，可以进入白名单
    if (whiteList.indexOf(to.path) > -1) {
      next()
    } else {
      next('/login')
    }
  }
})
